package com.jhy.suixianglu.shuangzhizhen.daima20230118;

/**
 * 给你单链表的头节点 head ，请你反转链表，并返回反转后的链表。
 */
public class ReverseList {
    public ListNode reverseList(ListNode head) {
        // 设置一个当前的节点
        ListNode cur = head;
        // 前指针
        ListNode pre  = null;
        // 临时节点
        ListNode temp = null;
        while(cur != null){
            // 先将cur的后一指针给保存到。因为后面我们要改变他的指向了。
            temp = cur.next;
            // 改变指针的执行
            cur.next = pre;
            // 前一指针变成cur
            pre = cur;
            // cur变成了temp
            cur = temp;
        }
        // 放回头节点
        return pre;
    }
}

class ListNode {
    int val;
    ListNode next;

    ListNode() {
    }

    ListNode(int val) {
        this.val = val;
    }

    ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}